查看原文
其他

一文速览 Eth2.0 的 7 大客户端进展

The following article is from Unitimes Author Somer Esat


撰文 | Somer Esat
来源 | Unitimes


以太坊2.0升级预计将于今年晚些时候发布,起初将推出阶段0。阶段0包括上线信标链,信标链负责管理 PoS 协议。为了与信标链交互,需要通过实现了以太坊2.0规范的客户端
本文中,作者将对目前正在积极开发中的7个以太坊2.0客户端进行了简要介绍,提供关于每个客户端的来源信息,包括供读者深入了解的相关链接。
为何需要这么多的客户端?
你可能想知道,为什么有这么多客户端?为什么不集中精力搭建一个很棒的“超级客户端”一劳永逸呢?
嗯,有很多原因可以说明拥有多个客户端是一件好事。以下是我认为最突出的两点原因:
  • 拥有多个客户端意味着独立的开发者们处于友好的竞争中,通过不同的解决方案和特性来相互激励。竞争推动创新

  • 拥有多个客户端意味着稳健性,当某个客户端出现问题时提供更多其他选择。例如,假设我们只有一个“超级客户端”,如果这个客户端出现 bug 或漏洞,那该怎么办?这可能会导致整个 Eth2 网络瘫痪。

由于这些 (以及更多的) 原因,支持一个均衡的以太坊2.0多客户端生态系统是很重要的。以太坊核心开发者 Danny Ryan 对此表示:
在 (信标链) 发布之前的这段时间,我希望你们可以走出舒适圈去尝试使用不同的客户端。这些客户端之间有许多的权衡,你需要亲自使用才能找到哪个客户端最适合你...以太坊以多客户端的模式运行,为了获得这种方式带来的益处,我们需要用户运行各种不同的客户端 (从而使所有类型的客户端健康地分布在网络中)。

7大客户端

回归正题,我们开始深入了解以太坊的7大客户端。这些客户端按名称字母顺序排列如下:
  • Cortex (Nethermind)

  • Lighthouse (Sigma Prime)

  • Lodestar (ChainSafe Systems)

  • Nimbus (Status)

  • Prysm (Prysmatic Labs)

  • Teku (PegaSys)

  • Trinity (以太坊基金会)


本文将从成熟度、技术、功能和支持等方面对各个客户端进行描述。
随着最新的以太坊2.0规范版本 (v0.12.1) 在最近发布,且规范可能仍在经历变化,所有客户端都处于积极开发中。
以下信息基于本文发布之日公开的线上信息来源。
致各个客户端团队:如果文中有任何不准确之处,还望指正。

01. Cortex (Nethermind)

开源的 Cortex 客户端是唯一基于 .NET 的处于开发中的以太坊2.0客户端。其开发公司 Nethermind 成立于 2017 年,位于英国伦敦。
虽然自去年12月份以来,Cortex 的 Github 库中就没有出现新的活动,但有证据表明,该团队正在 Nethermind (Eth1客户端) 库中开发对 Eth2.0 的支持。目前尚不清楚这是否意味着 Cortex 客户端已被淘汰,而青睐于功能更全面的 Nethermind 客户端,或者 Nethermind 最终将变成 Cortex。
产品概览 (基于 Nethermind,而非 Cortex)
  • 技术:Microsoft .NET Core 3.0

  • 平台:Linux、MacOS、Windows

  • 许可证:GNU Lesser General Public License

  • 仓库:GitHub。30名贡献者 (提交)。最近的提交在几天内。

  • 指标:Prometheus

  • 测试网:尚未上线 Altona 测试网


文档
Eth1 Nethermind 客户端有大量的文档。我没能找到有关 Eth2 Cortex 客户端的任何文档。可能目前正在开发中。
当前状态
  • 当前致力于存款 (deposit) 的处理和信标链节点实现。

  • 尚未实现最终性 (finalizing)


值得注意
Nethermind 的 Github 页面列出了在未来 6 个月内建立对 Eth2 多客户端测试网的支持
Links 相关链接
  • 网站:https://nethermind.io/

  • Twitter:https://twitter.com/nethermindeth

  • Gitter:https://gitter.im/nethermindeth/nethermind

  • Gitcoin:https://gitcoin.co/grants/142/nethermind

  • GitHub:https://github.com/NethermindEth/nethermind

  • 文档:https://nethermind.readthedocs.io/en/latest/index.html



02. Lighthouse (Sigma Prime)

Lighthouse 是由 Sigma Prime 团队使用 Rust 编写的开源客户端。该客户端的开发始于 2018 年,该公司位于澳大利亚悉尼。
产品概览
  • 技术:Rust

  • 平台:Linux、MacOS、Windows

  • 许可证:Apache 2.0

  • 仓库:GitHub。57名贡献者 (提交)。最近的提交在几天内。

  • 指标:Prometheus

  • 测试网:Altona (创世时期)


文档
Lighthouse 团队在提供该项目的文档方面做得非常棒。一些文档包括:
  • 关于客户端安装和配置的用户指南

  • 活跃的 Discord 社区

  • 定期更新的开发者博客

  • 自动生成的源代码文档

  • 贡献者指南,用于对该项目进行贡献


当前状态
  • 团队正专注于实现 v0.12.1 规范;

  • 参与了最新的多客户端测试网 Altona 的启动;

  • 正在敲定验证者私钥管理;

  • 正在运行外部安全审计;

  • 正在进行性能改进;

  • 正在致力于一种保护验证者免受 slashing (罚没) 的方案。


值得注意
Sigma Prime 网站有一个令人印象深刻的“sand on water”交互模拟,玩起来非常有趣,值得一试。
相关链接
  • 网站:https://sigmaprime.io/

  • 博客:https://lighthouse.sigmaprime.io/

  • Twitter:https://twitter.com/sigp_io

  • Gitter:https://gitter.im/sigp/lighthouse

  • Discord:https://discord.gg/cyAszAh

  • GitHub:https://github.com/sigp/lighthouse

  • 文档:https://lighthouse-book.sigmaprime.io/

  • 贡献者指南:https://lighthouse-book.sigmaprime.io/contributing.html


03. Lodestar (ChainSafe Systems)

Lodestar 客户端是由 ChainSafe Systems 团队使用 TypeScript 编写的开源客户端。它由加拿大多伦多的一群开发者开发。除了这个客户端之外,该团队还开发了许多支持以太坊2.0的实用程序包和库。
产品概览
  • 技术:TypeScript

  • 平台:Linux、MacOS、Windows

  • 许可证:GNU Lesser General Public License v3.0

  • 仓库:GitHub。30名贡献者 (提交)。最近的提交在几天内。

  • 指标:HTTP 服务器

  • 测试网:尚未上线 Altona 测试网

文档

Loadestar 团队采用开放式交流,可以阅读他们团队的会议记录。有关安装该软件的用户指南很少 (基本上就是:克隆、安装依赖项、搭建、运行),但该团队计划增加更多相关文档。
  • 关于客户端安装和配置的最小用户指南;

  • 活跃的 Discord 社区;

  • 定期更新开发者会议笔记和计划;

  • 贡献者指南,用于对该项目进行贡献。

当前状态
  • 正在应用 v0.12.1 规范更新,并锁定上线 Altona 多客户端测试网;

  • 中期目标是能够在一个合适的测试网 (Altona 或者之后推出的测试网) 上可靠地运行一个信标节点和验证者客户端,并更新相关文档。

值得注意
该团队已经实现了一个仅为教育目的的网站 bls-keygen.com,允许用户使用 Lodestar 的 BLS 库实现来生成验证者密钥。他们还有另一个网站 simpleserialize.com,该网站实现了以太坊规范 v0.11.2 共识类型以及将序列化值 (serialized values) 进行反序列化的功能。
相关链接
  • 网站:https://chainsafe.io/

  • Twitter:https://twitter.com/chainsafeth

  • Discord:https://discord.gg/yjyvFRP

  • GitHub:https://github.com/ChainSafe/lodestar

  • 文档:https://chainsafe.github.io/lodestar/

  • 贡献者指南:https://chainsafe.github.io/lodestar/contributing/


04. Nimbus (Status)

Nimbus 是一个研究项目,也是以太坊2.0的开源客户端实现,其目标是在嵌入式系统和个人移动设备上执行,包括硬件资源受限的老式智能手机
Status 团队已经通过他们的消息传递产品 Status 在移动技术方面拥有丰富的经验。他们将自己的经验应用于搭建一个以太坊客户端,该客户端可以在个人移动设备上运行存档节点 (archival node) 和相关的 Eth2 软件
产品概览
  • 技术:Nim

  • 平台:Android、Linux、MacOS、Windows (试验)

  • 许可:Apache License 2.0 或 MIT

  • 仓库:GitHub。24名贡献者。最近的提交在几天内。

  • 指标:HTTP 服务器

  • 测试网:Altona (创世时期)、Onyx

文档

提供最近更新的、简明但切中要点的文档集,涵盖了启动和运行该客户端所需的大部分信息。
  • 关于客户端安装和配置的用户指南;

  • 活跃的 Discord 和 Status 聊天社区;

  • 开发者指南,用于对该项目做出贡献。

当前的状态
  • 实现了最新的 Eth2.0 规范版本 v0.12.1;

  • 参与了最新的多客户端测试网 Altona 的启动;

  • 当前仅支持从源代码构建;

  • 正在进行性能改进和安全性审计。

值得注意
Nimbus 是当前唯一针对移动平台的以太坊2.0客户端。Nimbus 基于 Nim 语言运行,Nim 是一种高效和通用的系统编程语言,具有类似于 Python 的语法,可以编译成 C 语言。
该团队最近将区块和证明消息 (attestation) 的处理性能提高了大约 10-50 倍,客户端的启动提升了 20-100 倍。
相关链接
  • 网站:https://nimbus.team/

  • 博客:https://our.status.im/tag/nimbus/

  • Twitter:https://twitter.com/ethnimbus

  • Gitter:https://gitter.im/status-im/nimbus

  • Discord:https://t.co/CYjHgi6wFI?amp=1

  • Status:https://join.status.im/chat/public/nimbus-general

  • GitHub:https://github.com/status-im/nim-beacon-chain

  • 文档:https://status-im.github.io/nim-beacon-chain/

05. Prysm (Prysmatic Labs)

Prysm 客户端是由 Prysmatic Labs (成立于2018年1月) 开发的功能齐全、文档良好的开源以太坊2.0客户端。
Prysm 是一个相当成熟的客户端,拥有一个非常活跃的开发团队。他们在与他们的软件和测试网的用户进行交互和支持方面做得很棒,他们最知名的测试网就是 Topaz (已弃用) 和 Onyx。
产品概览
  • 技术:Go

  • 平台:Linux、MacOS、Windows

  • 许可证:GNU General Public License 3.0

  • 仓库:GitHub。48名贡献者 (提交)。最近的提交在几天内。

  • 指标:Prometheus

  • 测试网:Altona (创世时期)、Onyx

文档
Prysm 的用户、代码和问题文档都非常详尽,并得到了很好的维护。Prysmatic Labs 团队在保持博客更新方面也做得很棒,对于想要跟进 Prysm 客户端进展的人来说值得一读。
当前状态
  • 该客户端已更新至最新的 v0.12.1 规范;

  • 参与了最新的多客户端测试网 Altona 的启动;

  • 最近进行了安全审计,正在处理审计反馈;

  • 该团队正在进行各种优化;

  • 正在进行验证者账户重构

值得注意

Prysm 客户端有两个独立的二进制文件,一个用于信标链,另一个用于验证者。该客户端还能够运行一种 Slasher 算法以进一步帮助保护信标链并获取额外的收益。
Prysmatic Labs 团队拥有自己的稳定测试网 Onyx,该测试网正运行 50,000 验证者。他们之前的测试网 Topaz 的使用情况也很好。
相关链接
  • 网站:https://prysmaticlabs.com/

  • 博客:https://medium.com/prysmatic-labs

  • Twitter:https://twitter.com/prylabs

  • Gitter:https://gitter.im/prysmaticlabs/

  • Discord:https://discord.gg/KSA7rPr

  • Gitcoin:https://gitcoin.co/grants/24/prysm-by-prysmatic-labs

  • GitHub:https://github.com/prysmaticlabs/prysm

  • 文档:https://docs.prylabs.network/docs/

  • 贡献者指南:https://github.com/prysmaticlabs/



06. Teku (PegaSys)

Teku 客户端是一个企业级以太坊2.0开源客户端。该客户的正在由 PegaSys (ConsenSys 孵化的一个项目) 进行搭建。
值得注意的是,ConsenSys Codefi 最新宣布的机构级 Staking 试点项目正在 Teku 上进行搭建。
产品概览
  • 技术:Java

  • 平台:Linux、MacOS、Windows

  • 许可证:Apache License 2.0

  • 仓库:GitHub。38名贡献者 (提交)。最近的提交在几天内。

  • 指标:Prometheus

  • 测试网:Altona (启动时期)、Onyx

文档

提供最近更新的、简明但切中要点的文档集,涵盖启动和运行客户端所需的大部分信息。
  • 关于客户端安装和配置的用户指南;

  • 开发者指南,用于对该项目做出贡献。

当前的状态
  • 已更新至最新的规范 v.0.12.1;

  • 参与了最新的多客户端测试网 Altona 的启动;

  • 正在进行性能优化;

  • 最近增加了向 Prometheus 揭露 RocksDB 指标的支持。

值得注意

虽然 Teku 是作为企业级客户端被搭建,但个人用户也可以自由使用。
Teku 在日语里 (テク) 是“技术”的意思。
相关链接
  • 网站:https://pegasys.tech/teku/

  • 博客:https://pegasys.tech/blog/

  • Twitter:https://twitter.com/PegaSysEng

  • Gitter:https://gitter.im/PegaSysEng/teku

  • Discord:https://discord.gg/7hPv2T6

  • GitHub:https://github.com/PegaSysEng/teku

  • 文档:https://docs.teku.pegasys.tech/en/latest/

  • 贡献者指南:https://github.com/PegaSysEng/teku/blob/master/CONTRIBUTING.md



07. Trinity (以太坊基金会)

Trinity 是由以太坊基金会的 Python 团队编写的、支持 Eth1.0 和 Eth2.0 的开源以太坊客户端。其开发自2019年初开始。
产品概览
  • 技术:Python

  • Platform:Linux、MacOS、Windows (不支持)

  • 许可证:MIT

  • 仓库:GitHub。75名贡献者 (提交)。最近的提交在几天内。

  • 指标:InfluxDB

  • 测试网:尚未上线 Altona

文档
该团队提供了一组合理的更新文档集,包括客户端快速启动指南以及安全和运行该软件的说明。
该客户端的开发者提供了一个“Cookbook”文档,对如何使用该客户端实现一些实用和有趣的事情提供了建议,比如访问内置的性能分析工具。
当前的状态
  • 实现了信标链规范 v0.11.1,当前正在致力于实现 v0.12.1;

  • 正在解决性能问题;

  • 最近增加了通过 InfluxDB 追踪指标。

相关链接
  • 网站:https://trinity.ethereum.org/

  • Twitter:https://twitter.com/trinity_client

  • Gitter:https://gitter.im/ethereum/trinity

  • GitHub:https://github.com/ethereum/trinity/tree/eth2/v0.12.1

  • 文档:https://trinity-client.readthedocs.io/en/latest/

  • 贡献者指南:https://trinity-client.readthedocs.io/en/latest/contributing.html



写在最后

现在你了解了这七个客户端!你喜欢哪个?如果可能的话,我建议你都试试。一旦这些客户端都能成功地将同一个测试网 (如果不是 Altona,那就是之后推出的测试网) 作为目标,那么对你来说运行起来就更加容易了。
我不确定以太坊2.0主网的启动需要至少多少个客户端准备好,但很明显其中一些客户端的进度要更快。这将如何影响阶段0的启动时间,还有待观察。
最后,我想对所有以太坊开发者们表示感谢。以太坊的生态系统和社区充满了富有激情的人们,他们正朝着一个共同的目标努力:以太坊2.0。无数的开发者、研究者、修补人员和领导者正在努力使一切成为可能。感谢所有人。
免责声明
作者与本文中提到的公司/开发人员没有直接关系。文中内容仅代表作者观点。文中信息基于作者对公开可用信息的研究。本文不作为任何建议或背书,也不保证信息的准确性和完整性。
推荐阅读
真香,朕在看了!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存